package com.gcloud.controller.network.service;

import com.gcloud.controller.network.model.CreateSubnetParams;
import com.gcloud.controller.network.model.DescribeSubnetParams;
import com.gcloud.framework.db.PageResult;
import com.gcloud.header.api.model.CurrentUser;
import com.gcloud.header.network.model.DescribeSubnetModel;
import com.gcloud.header.network.model.DetailSubnet;
import com.gcloud.header.network.msg.api.ModifySubnetAttributeMsg;
/**
Copyright (c) [2020] [G-CLOUD TECHNOLOGY] [G-Cloud 8.0] is licensed under the Mulan PSL v1.
You can use this software according to the terms and conditions of the Mulan PSL v1. You may obtain
a copy of Mulan PSL v1 at: http://license.coscl.org.cn/MulanPSL THIS SOFTWARE IS PROVIDED ON AN 
"AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v1 for more details.
 */


public interface ISubnetService {
    String createSubnet(CreateSubnetParams params, CurrentUser currentUser);

    void deleteSubnet(String subnetId);

    void modifyAttribute(String subnetId, String subnetName, CurrentUser currentUser);

    void modifyAttribute(ModifySubnetAttributeMsg msg);
    
    PageResult<DescribeSubnetModel> describeSubnets(DescribeSubnetParams params, CurrentUser currentUser);

    DetailSubnet detail(String subnetId);
    
    void subnetIsolationCheck(String subnetId, CurrentUser currentUser);
}